約 2,164,382 件
https://w.atwiki.jp/lucier/pages/53.html
EC-CUBE2系ではIE6で帳票が開けない。 原因は2段階で開く小窓のせいらしい。 1系では1度目に開く小窓にPDFが出力されていたので 使い勝手は悪いけど、ちゃんとブラウザで確認できたらしいです。 ブラウザをIE以外にするとか、 ファイルを保存するようにさせるとかって方法はありますが、 シェアを考えるとまだまだIE6ユーザーは多い。 BtoCをつくるなら ユーザビリティをまず優先・・・ ってことで、1系と同じように 小窓を1回だけ開いてそこにPDFを出力させるように強制変更・・・ /html/eccube/data/class/SC_Fpdf.php function createPdf() { // PDFをブラウザに送信ob_clean(); if($this- pdf_download == 1) { $filename = "nouhinsyo-No".$this- arrData[ order_id ].".pdf"; } else { //$filename = "nouhinsyo.pdf"; $this- pdf- Output(); } $this- pdf- Output($this- sjis_conv($filename), D); // 入力してPDFファイルを閉じる $this- pdf- Close(); } で、このままだとブラウザ表示はできても ダウンロードができない。。。orz /data/Smarty/templates/default/admin/order/pdf_input.tpl を下記の様に変更。 function lfPopwinSubmit(formName) { if(document[formName].download.value == 0) { win02( about blank , pdf , 1000 , 900 ); document[formName].target = "pdf"; } else { document[formName].target = "_self"; } document[formName].submit(); return false;} とりあえずこれで表示もダウンロードもできるようになったけど、 ダウンロードを選択して作成ボタンを押下してポップアップされた 小窓でファイルを保存しないで「開く」を押すと。。。。 なんとかならなぃかな。。。コレ。
https://w.atwiki.jp/lucier/pages/56.html
リクエストを受け取ってから画面に表示されるまでの流れをメモ。 「当サイトについて」ページにアクセスした場合。 http //xxxx.com/about/index.php ↓ eccube/html/about/index.php ↓ [OUT] eccube/data/class_extends/page_extends/abouts/LC_Page_Abouts_Ex.php | [extends] eccube/data/class/pages/abouts/LC_Page_Abouts.php | | | init()で使用するテンプレートやtitleをセット | | | process()で | ・レイアウト取得 | ・テンプレ用のデータ取得 | ・テンプレへデータをセット | ・テンプレの表示 | | | destroy() | [extends] eccube/data/class/pages/LC_Page.php aboutのindex.php。基本となる形。 require_once("../require.php"); require_once(CLASS_EX_PATH . "page_extends/abouts/LC_Page_Abouts_Ex.php"); $objPage = new LC_Page_Abouts_Ex(); register_shutdown_function(array($objPage, "destroy")); $objPage- init(); $objPage- process(); aboutのinit()メソッド function init() { parent init(); $this- tpl_mainpage = abouts/index.tpl ; $this- tpl_page_category = abouts ; $this- tpl_title = 当サイトについて ; } aboutのprocess()メソッド function process() { $objView = new SC_SiteView(); // レイアウトデザインを取得 $layout = new SC_Helper_PageLayout_Ex(); $layout- sfGetPageLayout($this, false, DEF_LAYOUT); $objView- assignobj($this); $objView- display(SITE_FRAME); } assignobj()でテンプレにデータをセットし、display()で表示する。 ちなみにキャンペーンと絡む場合はdisplay()を使わず $objCampaignSess- pageView($this- objView); で分岐からdisplay()する。
https://w.atwiki.jp/lucier/pages/16.html
EC-CUBEではデフォルトでは 商品詳細ページのtitleタグが[ショップ名][商品名]の順番になっていますが、 SEO効果を上げるために商品名を先頭にしたい人も多いはず。 変更するには /data/Smarty/templates/default/site_frame.tpl を修正します。 デフォルトでは title !--{$arrSiteInfo.shop_name}-- / !--{$tpl_title|escape}-- /title と、なっていますので title !--{$tpl_title|escape}-- / !--{$arrSiteInfo.shop_name}-- /title のように変更すればOK。 勿論、ショップ名を取ってしまうこともできます。 ただ、商品名を取得する際に「商品詳細」という文言が入ってしまうので、 それも取り除く。 これは /data/class/pages/product/LC_Page_Products_Detail.php を修正する必要があり、 Line 253付近 // タイトルに商品名を入れる $this- tpl_title = "商品詳細 ". $this- arrProduct["name"]; Line 476付近 // タイトルに商品名を入れる $this- tpl_title = "商品詳細 ". $this- arrProduct["name"]; という箇所の「商品詳細」という言葉を削除すれば反映されます。 titleタグには必要最小限の言葉しか記載しない方がSEO効果が高い。
https://w.atwiki.jp/giskard/pages/21.html
EC-CUBE ドメイン直下に配置する場合 読み取り専用のチェックボックスをはずし、サブフォルダにも適用する 「html」フォルダのdefine.phpをエディタで開き、「/../data/」の部分を「/data/」と編集する。 "Public_html"フォルダ直下に「html」フォルダ内のデータをすべて入れる。 "Public_html"フォルダ直下に「data」フォルダをそのまま入れる。 更新履歴 取得中です。 名前 コメント ここを編集
https://w.atwiki.jp/lucier/pages/32.html
2.4.0 以降は下記の変更は不要 http //svn.ec-cube.net/open_trac/ticket/436 EC-CUBEでMySQLが遅いらしい。 最近では、PHP 関係で有名なアシアルさんのブログ等でも述べられていました。 ECオープンソースのEC CUBEを調査してみました アシアルブログ http //blog.asial.co.jp/540 MySQLモードでの一覧の表示が 39.67s から 1.37s 程度まで早くなりました。 改善方法についてですが、 SC_DB_DBFactory_MYSQL.php#viewToSubQuery の変更を行い、 SQL にて改善を図ったうえで、 LC_Page_Products_List.php の内部で商品一覧部分の クエリ発行でかなり無駄になっている部分を改善。 機能テストについては商品を 1000 件程度、一商品につき、規格を2つ。 カテゴリについては3階層程度までもぐったものを1カテゴリにつき20商品程度にて振り分けている。 SQL変換部分の改善 data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php の#viewToSubQuery()の部分の改修を行いました。 この部分は PostgreSQL モードではビューへの参照となっている部分をすべてサブクエリとして発行するコードです。 なぜそのようなことを行っているかというと EC-CUBE が当初想定していた MySQL のバージョンにて 4.x 以前はビュー機能がなかったため(5.x 以降は搭載されました)。ただ、この部分での変換サブクエリでかなり無駄があるため、そのへんをスッキリさせました。 以下が変更部分です。 商品一覧の対象となる vw_products_allclass の value 部分を以下の SQL に変更して下さい。 (SELECT pr.product_id ,pl.product_code_min ,pl.product_code_max ,pl.price01_min ,pl.price01_max ,pl.price02_min ,pl.price02_max ,pl.stock_min ,pl.stock_max ,pl.stock_unlimited_min ,pl.stock_unlimited_max ,pr.del_flg ,pr.status ,pr.name ,pr.comment1 ,pr.comment2 ,pr.comment3 ,pr.main_list_comment ,pr.main_image ,pr.main_list_image ,pr.product_flag ,pr.deliv_date_id ,pr.sale_limit ,pr.point_rate ,pr.sale_unlimited ,pr.create_date ,pr.deliv_fee ,pc.rank ,cc.rank AS category_rank ,cc.category_id FROM (((SELECT product_id as product_id_sub ,MIN(product_code) AS product_code_min ,MAX(product_code) AS product_code_max ,MIN(price01) AS price01_min ,MAX(price01) AS price01_max ,MIN(price02) AS price02_min ,MAX(price02) AS price02_max ,MIN(stock) AS stock_min ,MAX(stock) AS stock_max ,MIN(stock_unlimited) AS stock_unlimited_min ,MAX(stock_unlimited) AS stock_unlimited_max FROM dtb_products_class GROUP BY product_id ) AS pl LEFT JOIN dtb_products AS pr ON pl.product_id_sub = pr.product_id) LEFT JOIN dtb_product_categories AS pc ON pr.product_id = pc.product_id) LEFT JOIN dtb_category AS cc ON pc.category_id = cc.category_id) この SQL の改善によって弊社環境では、さきほどあげたテストデータでデフォルトの 39.67s から 4.09s 程度まで改善されました。また SHOW STATUS で確認したところ、問い合わせ数は 1/3 程度になりました。 商品一覧部分の変更 商品一覧部分のコードを改善します。規格の取得をデフォルトでは商品一件ごとに全部とってきていたのですが、これを一括に取得するという方法に変更しています。 http //systemfriend.co.jp/files/public/blog/takahashi/LC_Page_Products_List.phps .phps を .php にリネームして下さい。また公式のリビジョン 17506 のものを対象に行っていますので、バージョン等違う方はそれにあわせてください。
https://w.atwiki.jp/lucier/pages/22.html
背景色を変更するためのCSSファイル PCサイト [documentRoot]/html/user_data/packages/default/css/main.css mobileサイト [documentRoot]/data/Smarty/templates/default/mobile/site_main.tpl
https://w.atwiki.jp/lucier/pages/23.html
デザインカスタマイズ PC版 メインページのスタイルシート(マニュアルサイトにのってる情報が古いから書いておく) [DocumentRoot]html\user_data\packages\default\css\main.css mobile版 以下のファイルを編集すると背景色などのスタイルが変更できる。 [DocumentRoot]data\Smarty\templates\default\mobile\site_main.tpl
https://w.atwiki.jp/lucier/pages/50.html
以下のソースをすべて上書き。 インストール後に追加する場合は mtb_constants1テーブルに以下のSQLを実行する。 INSERT INTO mtb_constants VALUES ( OPTION_FAVORITE_PRODUCT , 1 , 523, お気に入り商]品登録(有効 1、無効 0) ); CREATE TABLE dtb_customer_favorite_products ( customer_id int NOT NULL, product_id int NOT NULL, create_date datetime NOT NULL, updatetime datetime NOT NULL, );
https://w.atwiki.jp/lucier/pages/13.html
管理画面で注意 画像は一覧-メイン画像[130×130],詳細-メイン画像[260×260],詳細-メイン拡大画像[500×500]がそろってないとエラーになる罠。
https://w.atwiki.jp/eccube2ch/pages/38.html
2.x系バグ情報 1.クリティカル 1-1.PC・携帯共通/DB系 root直下以外にec-cubeをインストールすると管理画面に入れなくなる等の問題が起こる。修正困難!。例えば、www.hogehoge.com/shop/ にec-cubeを入れようとする場合がこれに該当する。原因は、EC-CUBEのコア部分で、自身のルートディレクトリを認識するロジックが適当なため(サブディレクトリにインストールされた時のことを全く考慮していないロジックになっている)。修正しても影響範囲がかなりでかいのでなるべくいじらないことをおすすめする。(現在最新版Version 2.2.0-betaではfixされています) (詳細情報募集中)トランザクション処理が入っていないらしい・・・ 会員情報の「携帯メールアドレス」欄は既に登録済みのアドレスかの重複チェックが走ってない模様。従って色々とトラブルの温床になる可能性がある。(ログインメールアドレスは重複チェックが走るため一意性は保証される) はっきりと明記されていませんが、1系のクレジット決済モジュールは2系では使えません。zeroやイプシロンのような安価な決済屋のモジュールは2系では発表されていないので、安価にとりあえずクレジット決済を用意・・・と思っている人は要注意。(現在最新版Version 2.2.0-betaでは対応している模様) 1-2.携帯系 空メールによる会員登録はまだ実装されていない。1系のソースのままになっている。 空メールを修正し空メールによる会員登録モードを有効にすると、PCのメールアドレスしか持っていない会員が携帯にアクセスすると「携帯メールアドレスを登録してください」画面が表示され、会員は空メールを送ることになる。空メールに大して本人確認のメールが返って来て、それをクリックすると「登録完了しました」と表示される。しかし、このあたりのセッション保持ロジックに不具合があるため、実際には登録は完了しない。従って永遠にログイン不能になる。 2.そこそこ痛いバグ 2-1.管理画面 管理画面>受注管理>注文ステータスで、発送待ち/発送済み/キャンセル に属している注文を一括で注文ステータス移動できない。受注検索で該当注文を検索、検索結果より1件ずつ編集画面Jをちまちま開いて注文ステータスを変えて頑張ってください。 (調査中)新着情報の日付が化ける。2008年12月%D日になる。SAMARTYの不具合か? 2-2.携帯フロント側 バグというかそもそも携帯には会員のポイント機能が入っていない 3.指摘/懸念事項/HTMLの記述ミス/軽微バグ 3-1.PCフロント側 標準で入っているテンプレート、フッター(footer)のクラス名をfotterと定義していて恥ずかしい 3-2.携帯フロント側 デフォルトのモバイルのテンプレートは body タグに指定するlink、vlink、alinkの色を青に指定しているせいで、iモードではリンク部分にカーソルを合わせると背景色と文字色の両方が青になりリンク部分が読めない。修正する人はこちらを参考に。 携帯での会員編集画面(Myページ)では、FAX、職業はなぜかHIDDEN項目になっており編集不可 3-3.その他 テンプレートの削除を行っても鯖にあるテンプレートフォルダは消されないものがある。従って、削除→同ファイル名のテンプレートをもう一度登録しなおそう、と管理画面でアップロード手続きを行うとこける。 仮会員登録時に発行されるランダム文字列は、乱数で出している。もし重複するのがあるといけないので、重複していたら最大10回迄ループして新しいのを発行するロジックになっている。そのため、10回とも既存のランダム文字列と被ると予期せぬ動きを行う。確率はかなり低いだろうけどもう少し奇麗にならないのだろうか。